package es.udima.geo.geoserver.entities;

import java.io.Serializable;
import java.util.Calendar;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * <p>
 * Entidad que representa un registro de actividad de un usuario del sistema.
 * </p>
 * 
 * @author david
 * 
 */
@Entity
@Table(name = "userActivityLog")
public class UserActivityLog implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * Identificador interno del registro de actividad.
     */
    @Id
    private String activityId;

    /**
     * Acción registrada.
     */
    @Enumerated(EnumType.STRING)
    private UserAction action;

    /**
     * Token de sesión vigente durante la ejecución de la acción registrada.
     */
    private String sessionToken;

    /**
     * Indica si la acción ha sido finalizada correctamente.
     */
    private boolean success;

    /**
     * Momento en que se produce la acción.
     */
    @Temporal(TemporalType.TIMESTAMP)
    private Calendar timestamp;

    /**
     * Identificador del usuario que realiza la acción.
     */
    private String userId;

    /**
     * Constructor
     */
    public UserActivityLog() {
    }

    public String getActivityId() {
	return this.activityId;
    }

    public void setActivityId(String activityId) {
	this.activityId = activityId;
    }

    public UserAction getAction() {
	return this.action;
    }

    public void setAction(UserAction action) {
	this.action = action;
    }

    public String getSessionToken() {
	return this.sessionToken;
    }

    public void setSessionToken(String sessionToken) {
	this.sessionToken = sessionToken;
    }

    public boolean getSuccess() {
	return this.success;
    }

    public void setSuccess(boolean success) {
	this.success = success;
    }

    public Calendar getTimestamp() {
	return this.timestamp;
    }

    public void setTimestamp(Calendar timestamp) {
	this.timestamp = timestamp;
    }

    public String getUserId() {
	return this.userId;
    }

    public void setUserId(String userId) {
	this.userId = userId;
    }

}